perm filename PROB3[1,DBL] blob sn#002659 filedate 1972-12-12 generic text, type T, neo UTF8
00100	(DE LISTP (S)
00200	(COND ((NULL S)  T)
00300	      ((ATOM S) NIL)
00400	     ((ATOM (CAR S)) (LISTP (CDR S)))
00500	     ((LISTP (CAR S)) (LISTP (CDR S]
00600	(DE UGLYPRINT (S) (COND
00700	  ((ATOM S) (PRINC S))
00800	  ((ATOM (CAR S)) (PRINC @/() (PRINC (CAR S))
00900	          (PRINC @/.) (UGLYPRINT (CDR S))
01000	         (PRINC @/)) S)
01100	   (T (PRINC @/() (UGLYPRINT (CAR S))
01200	          (PRINC @/.) (UGLYPRINT (CDR S))
01300	           (PRINC @/)) S]
01400	(DE FLATTEN (S) (COND
01500	   ((ATOM S) (NCONS S))
01600	   (T (APPEND (FLATTEN (CAR S)) (FLATTEN (CDR S]
01700	(DE FLATCOUNT (S) (FLAT S (B (FLATTEN S]
01800	(DE FLAT (S BS) (COND ((NULL BS) NIL)
01900	       (T (CONS (CONS (CAR BS) (NCONS (OCCUR (CAR BS)
02000	    (FLATTEN S))))
02100	  (FLAT S (CDR BS]
02200	(DE B (S) (COND ((ATOM S) NIL)
02300	   ((MEMBER (CAR S) (CDR S)) (B (CDR S)))
02400	     (T (CONS (CAR S) (B (CDR S]
02500	(DE OCCUR (E S) (COND ((NULL S) 0)
02600	   ((EQUAL (CAR S) E) (ADD1 (OCCUR E (CDR S))))
02700	   (T (OCCUR E (CDR S]
02800	(DE RESERVE (RM GST DAT)  (COND (T
02900	 (PUTPROP GST (CONS RM DAT) (VAR DAT))
03000	 (PUTPROP  RM (CONS GST DAT) GST)
03100	 (PUTPROP  RM GST (VAR DAT))
03140	 (PRINC @(WE HAVE MADE A RESERVATION IN THE NAME OF))
03150	 (PRINC GST) (TERPRI) (PRINC @(FOR ROOM)) (PRINC RM)
03160	 (PRINC @(ON THE DATE)) (PRINC DAT)
03200	 (CONS RM DAT]
03300	(DE CANCEL (GST DAT) (COND
03350	 ((GET GST (VAR DAT))
03400	 (SETQ A (CAR (GET GST (VAR DAT))))
03500	 (REMPROP GST (VAR DAT))
03600	   (REMPROP A GST)
03700	 (REMPROP A (VAR DAT))
03800	 (CONS @(WE HAVE CANCELLLED ROOM) A)
03840	) (T (PRINC @(WE REGRET THAT WE CANNOT CANCEL THE
03850	 ROOM AS PER YOUR REQUEST )) (TERPRI)
03860	 (PRINC @(SINCE OUR RECORDS 
03880	SHOW NO SUCH RESERVATION)) NIL]
03900	(DE ROOM (GST DAT)
04000	 (COND (  
04050	  (GET GST (VAR DAT)) (PRINC @(MR)) (PRINC GST)
04075	  (PRINC @( HAS RESERVED ON DATE/ ))
04087	  (PRINC DAT) (PRINC @/ ROOM/ )
04090	 (PRINC (CAR (GET GST (VAR DAT)))) (GET GST (VAR DAT)))
04093	 (T (PRINC @MR/ ) (PRINC GST) (PRINC @(/ HAS NOT
04096	 RESERVED ANY ROOM ON THE DAT )) (PRINC DAT)
04098	  NIL]
04099	
04100	(DE GUEST (RM DAT)
04200	 (GET RM (VAR DAT]
04300	(DE RESERVATIONS (GST)
04400	 (PROG NIL (SETQ DAT 1)
04500	  (PRINC @MR/ ) (PRINC GST) (PRINC @( HAS MADE
04550	THE FOLLOWING RESERVATIONS)) (TERPRI)
04600	L (COND ((GET GST (VAR DAT)) (PRINC (GET GST (VAR DAT))) 
04700	   (TERPRI)
04750	))
04800	            (SETQ DAT (ADD1 DAT)) 
04900	            (COND ((*GREAT 366 DAT) (GO  L]  
05000	(DE VAR (I) (READLIST (CONS @D (EXPLODE I]